package com.hrbxlh.dao;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

/**
* -------------------------------------------------------
* Copyright (c) 2017, 鑫联华信息科技股份有限公司
* All rights reserved.
* FileName：RoleDao.java
* Description：角色RoleDao类,负责操作角色数据。
* History：
* Date           Author               Desc
* 2017.1.9		  xzx                 建立
* -------------------------------------------------------
*/

@Repository
public interface RoleDao {

	/**
	 * @description 获取全部角色信息
	 * @param Map<String, Object> 如果有查询条件，就将条件set到map中，
	 *        如果是数据库存在的字段，key值要与column的值相同。
	 * @return List<Map<String, Object>> (角色集合)
	 * @throws Exception
	 */
	 List<Map<String,Object>> getRoleList(Map<String, Object> paramMap) throws Exception;

	/**
	 * @description 添加角色
	 * @param Map<String, Object> 角色信息，key与column对应一致
	 * @return void
	 * @throws Exception
	 */
	 void addRole(Map<String, Object> paramMap) throws Exception;

	/**
	 * @description 添加角色的权限
	 * @param Map<String, Object> 角色id，菜单id。
	 * @return void
	 * @throws Exception
	 */
	 void addPermission(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 删除角色(一次删除多个)
	 * @param List<Integer> 角色id集合
	 * @return void
	 * @throws Exception
	 */
	 void delRole(List<Integer> paramList) throws Exception;
	
	/**
	 * @description 删除角色的权限信息（一次删除多个）
	 * @param List<Integer> 角色id集合
	 * @return void
	 * @throws Exception
	 */
	 void delPerission(List<Integer> paramList) throws Exception;
	
	/**
	 * @description 修改角色名称
	 * @param Map<String, Object> 角色信息，key值与column值一致
	 * @return void
	 * @throws Exception
	 */
	 void saveRole(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 获取某角色具有的权限信息
	 * @param int 角色id
	 * @return List<Map<String, Object>> 角色具有的菜单信息。
	 * @throws Exception
	 */
	 List<Map<String, Object>> getPermissionByRoleId(Map<String, Object> map) throws Exception;
	
	/**
	 * @description 查询是否有人是这个角色
	 * @param int 角色id
	 * @return List<Map<String, Object>> 人员信息列表。
	 * @throws Exception
	 */
	 List<Map<String, Object>> getUserByRole(int roleId) throws Exception;
	
	/**
	 * @description 通过角色id查询角色名
	 * @param Map<String, Object> 角色id
	 * @return Map<String, Object> 角色信息
	 * @throws Exception
	 */
	 Map<String, Object> getRoleById(Map<String, Object> paramMap) throws Exception;

	/**
	 * @description 通过角色名查询是否有这个角色名的信息
	 * @param Map<String, Object> 角色名
	 * @return Map<String, Object> 角色信息
	 * @throws Exception
	 */
	 Map<String, Object> getRoleByName(Map<String, Object> paramMap) throws Exception;

}
